Computing systems using multiple processing cores are commonly used to provide increased performance over single-core systems. A variety of multi-processor programming paradigms exist to provide for division of tasks among the different cores of a multi-core computing environment. However, some multi-processor programming paradigms, such as symmetric multiprocessing and virtual single processing, may have drawbacks that limit their usefulness.